/* Graph-specific styling. */
html, body {
  margin: 0; padding: 0;
  height: 100%; width: 100%;
  color: #222222; line-height: 18px;
  font-size: 13px; font-family: Arial;
}
.hidden { opacity: 0.0 !important; }

div, svg, g {
  -webkit-transition: all 0.23s;
  -moz-transition: all 0.23s;
  -o-transition: all 0.23s;
}
#node-info {
  pointer-events: none;
  border: 1px solid #000; color: #fff; font-weight: 900;
  display: inline-block; position: absolute;
  z-index: 10; margin: 8px; padding: 8px;
  background-color: #222; opacity: 0.8;
  font-size: 10px;
  -webkit-transition: opacity 0.23s;
  -moz-transition: opacity 0.23s;
  -o-transition: opacity 0.23s;
}

#graph-coordinates {
  pointer-events: none;
}

#graph-loading {
  position: fixed; color: #aaa; display: block; width: 100%;
  font-size: 20px; text-align: center; top: 50%;
  z-index: 200;
}

/*----------------------------------------------------------------------------*/
/* Graph edit / create forms.
/*----------------------------------------------------------------------------*/

.graph-form {
  border: none;
}

#graph-actions {
  display: inline-block;
  margin: 8px;
}

.controls { display: block; }
.controls input[type=text] { width: 163px; }
.form-label {
  display: block;
  margin: 0; line-height: 29px;
}
.form-entry { margin-bottom: 4px; }

/*----------------------------------------------------------------------------*/
/* Visualisation Style */
svg#visualization {
  position: absolute;
  width: 100%; height: 100%;
}

/* Links */
.link {
  stroke: #ccc;
  position: absolute; z-index: 0;
  -webkit-transition: stroke 0.2s ease-in; //for chrome, safari
  -moz-transition: stroke 0.2s ease-in; //for mozilla firefox
  -o-transition: stroke 0.2s ease-in; //for opera
}
.link.hover {
  stroke: #aaa;
  stroke-width: 2px;
}

/* Nodes */
g.node {
  cursor: pointer;
  position: absolute; z-index: 10;
}

.node-circle {
  fill: #CCC;
  stroke: #999;
  stroke-width: 1.5px;
  position: absolute; z-index: 30;
}
.node-circle.fixed {
  stroke: #000;
  stroke-width: 1px;
  stroke-dasharray: 1 1;
  -webkit-filter: drop-shadow( 0 0 5px #000 );
          filter: drop-shadow( -5px -5px 5px #000 );
}

.hovered-node {
  stroke-width:2px;
  stroke:#F00;
}
#hover-node circle {
  stroke-width:2px;
  stroke:#F00;
  fill: none;
}
circle:hover, .hovered-node circle, .drag-node circle {
  stroke: #666;
  stroke-width: 3px;
  -webkit-transition: all 0.2s;
  -moz-transition: all 0.2s;
  -o-transition: all 0.2s;
  z-index: -1;
}

/* Labels */
g.label {
  display: block;
  pointer-events: none;
  cursor: default;
  font: 10px sans-serif;
  position: absolute;
}
.label-text {
  stroke: none;
  text-shadow: 0 0 3px #fff;
  -webkit-transition: opacity 0.5s ease-in; //for chrome, safari
  -moz-transition: opacity 0.5s ease-in; //for mozilla firefox
  -o-transition: opacity 0.5s ease-in; //for opera
  position: absolute; z-index: 50;
}
.hovered-label {
  fill: #FF4444;
  opacity: 1;
  font-weight: bold;
  font-size: 12px;
}
.drag-label {
  fill: #4444FF;
  opacity: 1;
  font-weight: bold;
  font-size: 12px;
}

body .graph {
  border:none;
  margin:0px;
  padding:0px;
  width: 100%;
  height: 100%;
  overflow: none;
}


#dbg {
  position: fixed; top:0; left:0
}

/* Styles for graph components. */
.graph {
  -webkit-transform: translateZ(0);
  -moz-transform: translateZ(0);
  -ms-transform: translateZ(0);
  -o-transform: translateZ(0);
  transform: translateZ(0);
  border:none;
  margin: 0; padding: 0;
  width:100%; height: 100%;
  background-color: #fff;
}
  .graph .info-panel {
    opacity: 0;
    position: absolute;
    z-index: 100;
    border: 1px solid #ccc;
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    width: 600px;
    left: 50%;
    margin-left: -300px;
    margin-top: 20px;
    background-color: #fff;
    background-color: rgba(255, 255, 255, 0.9);
    min-height: 300px;
    max-height: 90%;
    overflow: auto;
    -webkit-transition: all 0.2s;
    -moz-transition: all 0.2s;
    -ms-transition: all 0.2s;
    -o-transition: all 0.2s;
    transition: all 0.2s;
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
    padding: 10px;
    box-sizing: border-box; }
    .graph .info-panel .info-heading {
      font-size: 25px; }
    .graph .info-panel .info-short-description {
      font-weight: bold; }
    .graph .info-panel .more-information-link {
      display: none;
      float: left;
    }
    .graph .info-panel .info-youtube {
      text-align: center;
    }
    .graph .info-panel .credit-wrapper {
      display: block;
      float: right;
    }
  .graph .zoom-controls {
    position: absolute;
    z-index: 50;
    right: 20px;
    top: 20px; }
    .graph .zoom-controls .btn {
      min-width: 16px;
    }

.close {
  position: absolute; right: 20px;
  padding: 3px 8px;
  background-color: #fff; border: 1px solid #ccc;
} .close:hover {
    border-color: #aaa;
    box-shadow: 0 0 1px #555;
  }

/* goth mode */
.graph.dark { background-color: #000; }
.node-circle-dark {
  fill: #333;
  stroke: #eee;
  stroke-width: 0.5px;
  position: absolute; z-index: 30;
}
.label-text-dark {
  stroke: #eee;
  text-shadow: 0 0 3px #000;
};
